//
//  LS_Status.swift
//  weibo
//
//  Created by 罗李苏 on 16/5/24.
//  Copyright © 2016年 Apple. All rights reserved.
//

import UIKit

class LS_Status: NSObject {
    
    ///自动匹配机型平台
    var id: Int64 = 0
    ///微博信息内容
    var text: String?
    ///微博创建时间
    var created_at: String?
    ///微博来源
    var source:String?
    ///用户  直接赋值 会给自定义对象赋值一个字典
    var user:LS_User?
    //配图视图的模型数组
    var pic_urls: [LS_Picture]?
    //转发微博的模型
    var retweeted_status: LS_Status?
    //转发的数量
    var reposts_count: Int = 0
    //评论
    var comments_count: Int = 0
    //赞
    var attitudes_count: Int = 0
    
    
    //KVC
    init(dict: [String : AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
    //判断当key 是 "user"时我们需要再次字典转模型 因为 这个key 取出来的是字典
    override func setValue(value: AnyObject?, forKey key: String) {
        
        if key == "user" {
            if let dict = value as? [String : AnyObject]{
            user = LS_User(dict: dict)
            
            }
            return
        }
//        super.setValue(value, forKey: key)
        
        /////////////////////////////////////
        //给妆发微博做字典转模型
        if key == "retweeted_status" {
            if let dict = value as? [String : AnyObject] {
                retweeted_status = LS_Status(dict: dict)
            }
            //需要添加return  不然字典转模型就白做了
            return

        }
        /////////////////////////////////
        
        if key == "pic_urls" {
            //1.将 value 转换为数组
            if let array = value as?[[String : AnyObject]]{
                //2.遍历数组
                //定义 临时数组用于存放模型
                var tempArray = [LS_Picture]()
                
                for item in array {
                    //3.字典转模型
                    let p = LS_Picture(dict: item)
                    //4.添加到模型数组
                    tempArray.append(p)
                }
                //5.保存数据
                pic_urls = tempArray
                
            }
            return
        }
        super.setValue(value, forKey: key)
    }
    
    
    //过滤
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }

}
